home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / src / lib / c / string / RCS / strncmp.c,v < prev    next >
Text File  |  1992-03-27  |  3KB  |  134 lines

  1. head     1.3;
  2. branch   ;
  3. access   ;
  4. symbols  ;
  5. locks    ; strict;
  6. comment  @ * @;
  7.  
  8.  
  9. 1.3
  10. date     92.03.27.13.30.04;  author rab;  state Exp;
  11. branches ;
  12. next     1.2;
  13.  
  14. 1.2
  15. date     89.03.22.16.07.11;  author rab;  state Exp;
  16. branches ;
  17. next     1.1;
  18.  
  19. 1.1
  20. date     88.04.25.13.25.49;  author ouster;  state Exp;
  21. branches ;
  22. next     ;
  23.  
  24.  
  25. desc
  26. @@
  27.  
  28.  
  29. 1.3
  30. log
  31. @A few little optimizations.
  32. @
  33. text
  34. @/* 
  35.  * strncmp.c --
  36.  *
  37.  *    Source code for the "strncmp" library routine.
  38.  *
  39.  * Copyright 1988 Regents of the University of California
  40.  * Permission to use, copy, modify, and distribute this
  41.  * software and its documentation for any purpose and without
  42.  * fee is hereby granted, provided that the above copyright
  43.  * notice appear in all copies.  The University of California
  44.  * makes no representations about the suitability of this
  45.  * software for any purpose.  It is provided "as is" without
  46.  * express or implied warranty.
  47.  */
  48.  
  49. #ifndef lint
  50. static char rcsid[] = "$Header: /sprite/src/lib/c/string/RCS/strncmp.c,v 1.2 89/03/22 16:07:11 rab Exp Locker: rab $ SPRITE (Berkeley)";
  51. #endif /* not lint */
  52.  
  53. #include <string.h>
  54.  
  55. /*
  56.  *----------------------------------------------------------------------
  57.  *
  58.  * strncmp --
  59.  *
  60.  *    Compares two strings lexicographically.
  61.  *
  62.  * Results:
  63.  *    The return value is 0 if the strings are identical in their
  64.  *    first s1 characters.  If they differ in their first s1
  65.  *    characters, then the return value is 1 if the first string is
  66.  *    greater than the second, and -1 if the second string is less
  67.  *    than the first.  If one string is a prefix of the other then
  68.  *    it is considered to be less (the terminating zero byte participates
  69.  *    in the comparison).
  70.  *
  71.  * Side effects:
  72.  *    None.
  73.  *
  74.  *----------------------------------------------------------------------
  75.  */
  76.  
  77. int
  78. strncmp(s1, s2, numChars)
  79.     register char *s1, *s2;        /* Strings to compare. */
  80.     register int numChars;        /* Max number of chars to compare. */
  81. {
  82.     register char c1, c2;
  83.  
  84.     for ( ; numChars > 0; --numChars) {
  85.     c1 = *s1++;
  86.     c2 = *s2++;
  87.     if (c1 != c2) {
  88.         return c1 - c2;
  89.     }
  90.     if (c1 == '\0') {
  91.         return 0;
  92.     }
  93.     }
  94.     return 0;
  95. }
  96. @
  97.  
  98.  
  99. 1.2
  100. log
  101. @*** empty log message ***
  102. @
  103. text
  104. @d17 1
  105. a17 1
  106. static char rcsid[] = "$Header: /sprite/src/lib/c/string/RCS/strncmp.c,v 1.1 88/04/25 13:25:49 ouster Exp Locker: rab $ SPRITE (Berkeley)";
  107. d49 7
  108. a55 7
  109.     for ( ; numChars > 0; numChars -= 1) {
  110.     if (*s1 != *s2) {
  111.         if (*s1 > *s2) {
  112.         return 1;
  113.         } else {
  114.         return -1;
  115.         }
  116. d57 1
  117. a57 1
  118.     if (*s1++ == 0) {
  119. a59 1
  120.     s2 += 1;
  121. @
  122.  
  123.  
  124. 1.1
  125. log
  126. @Initial revision
  127. @
  128. text
  129. @d17 4
  130. a20 2
  131. static char rcsid[] = "$Header: proto.c,v 1.2 88/03/11 08:39:08 ouster Exp $ SPRITE (Berkeley)";
  132. #endif not lint
  133. @
  134.